Method and apparatus for determining a valid sequence of touch events on a touch sensitive device

ABSTRACT

Certain aspects of the present disclosure relate to a technique for determining a valid sequence of touch events on a touch sensitive device. A first sequence of touch events is received, a proximity between any two touch events of the first sequence of touch events being greater than a proximity threshold. A second sequence of touch events is received. The touch events from the first and the second sequence are combined if a time difference between the first and the second sequence of touch events is below a time threshold and a proximity between the first and the second sequence of touch events is less than the proximity threshold. A valid sequence of touch events is determined if a combined pressure of the first and the second sequence of touch events is greater than a pressure threshold.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims the benefit of and is a continuation of U.S.application Ser. No. 14/333,233, filed on Dec. 1, 2010, which is acontinuation of U.S. application Ser. No. 12/957,966, filed on Jul. 16,2014, now issued U.S. Pat. No. 8,786,560, issued on Jul. 22, 2014, whichclaims the benefit of prior filed U.S. Provisional Application Ser. No.61/317,812, filed on Mar. 26, 2010, each of which is incorporated hereinby reference and relates to the following commonly assigned patentapplications and patents: U.S. Provisional Application Ser. No.61/317,800, filed on Mar. 26, 2010, and U.S. Provisional ApplicationSer. No. 61/317,741, filed on Mar. 26, 2010 and U.S. application Ser.No. 12/753,163 filed on Apr. 2, 2010, now issued U.S. Pat. No.8,786,875, issued on Jul. 22, 2014 and U.S. Ser. No. 12/753,167 filed onApr. 2, 2010 and U.S. Ser. No. 12/753,171 filed on Apr. 2, 2010 and U.S.Ser. No. 12/753,180 filed on Apr. 2, 2010, now issued U.S. Pat. No.8,559,036 issued on Oct. 15, 2013 and U.S. Provisional Application Ser.No. 61/317,744 filed on Mar. 26, 2010 and U.S. application Ser. No.12/770,944 filed on Apr. 30, 2010 and U.S. application Ser. No.12/770,965 filed on Apr. 30, 2010 and U.S. Ser. No. 12/770,974 filed onApr. 30, 2010 and U.S. Provisional Ser. No. 61/317,827 filed on Mar. 26,2010 and U.S. Provisional Application Ser. No. 61/317,793, filed on Mar.26, 2010, and U.S. Provisional Application Ser. No. 61/352,892, filed onJun. 9, 2010, and U.S. Provisional Application Ser. No. 61/359,043,filed on Jun. 28, 2010, and U.S. Provisional Application Ser. No.61/359,057, filed on Jun. 28, 2010, each of which is incorporated hereinby reference.

FIELD OF THE INVENTION

The present disclosure relates generally to touch sensitive devices and,more specifically, to a method, apparatus and computer-readable mediumfor determining a valid touch event on a touch sensitive device.

BACKGROUND OF THE INVENTION

The present invention relates generally to a system, method and computerreadable medium of detecting and correctly interpreting repeated touchesof one or more users of a touch sensitive screen.

Touch input systems have become ubiquitous throughout industrializedcountries. These systems have replaced or supplemented conventionalinput systems, such as keyboard or mouse in many applications, includingfor example, information kiosks, retail point of sale, order input(e.g., restaurants), and industrial line operations. Various sensingtechnologies are applied in touch input systems currently inmarketplace, including acoustic, resistive, capacitive and infrared. Atouch input system is typically used in conjunction with some type ofinformation display system that may include a computer. When a usertouches a displayed object, the touch input system communicates thelocation of the touch to the system.

Usually one, two or more sensors are used to simultaneously detectsignals originated from a touch event. Analysis of such signals allowsidentifying location and the relative strength of the contact. Forexample, U.S. Pat. No. 6,922,642 “Contact sensitive device” by D. M.Sullivan describes a contact sensitive device which uses bending wavevibration for extracting information relating to the contact fromsimultaneous measurements of two or more sensors.

Correctly detecting the false or true touch and location of the touch isvery important. Unfortunately this may not be always achieved withdesired level of reliability. Various approaches are available in priorart. For example, U.S. Pat. No. 6,492,279 “Dual sensor touch screenutilizing projective-capacitive and force touch sensors” by Joel Kent etal, describes a method and apparatus for discriminating against falsetouches in a touch screen system, where the system is designed toconfirm a touch registered by one touch sensor with another touchsensor, preferably of a different sensor type, prior to acting upon thetouch. Another approach is described in U.S. Pat. No. 5,543,589“Touchpad with dual sensor that simplifies scanning” by William A.Buchana et al. This patent discloses a dual sensor touch screen in whicheach sensor determines touch and its position, but with a differentresolution. While such systems increases touch detection reliabilitythey also increase the cost of the system.

Alternative approaches in prior art systems rely on a single sensordetection where touch pressure is measured and decision is made onwhether to act upon a touch or not depending on the measured value. Forexample, U.S. Pat. No. 5,510,813 “Data processing device comprising atouch screen and a force sensor” by Kofi A. A. Makinwa et al describes asystem where the force of the touch is determined. In response to atouch, the system processes the detected force of the touch according tothe needs of the application. Some applications available in the marketplace today rely on such single touch force measurement, and if thetouch force/pressure is below certain value, the touch event isdiscarded. This often leads to unsatisfactory customer experience.Therefore a method and apparatus are needed to improve touch detectionwhile keeping the cost low.

SUMMARY OF THE INVENTION

Certain aspects of the present disclosure provide a method fordetermining a valid sequence of touch events on a touch sensitivedevice. The method generally includes receiving a first sequence oftouch events, a proximity between any two touch events of the firstsequence of touch events being greater than a proximity threshold,receiving a second sequence of touch events, combining the touch eventsfrom the first and the second sequence if a time difference between thefirst and the second sequence of touch events is below a time thresholdand a proximity between the first and the second sequence of touchevents is less than the proximity threshold, and determining a validsequence of touch events if a combined pressure of the first and thesecond sequence of touch events is greater than a pressure threshold.

Certain aspects of the present disclosure provide an apparatus fordetermining a valid sequence of touch events on a touch sensitivedevice. The apparatus generally includes at least one processorconfigured to receive a first sequence of touch events, a proximitybetween any two touch events of the first sequence of touch events beinggreater than a proximity threshold, receive a second sequence of touchevents, combine the touch events from the first and the second sequenceif a time difference between the first and the second sequence of touchevents is below a time threshold and a proximity between the first andthe second sequence of touch events is less than the proximity thresholdand determine a valid sequence of touch events if a combined pressure ofthe first and the second sequence of touch events is greater than apressure threshold; and a memory coupled to the at least one processor.

Certain aspects of the present disclosure provide a computer-programproduct for determining a valid sequence of touch events on a touchsensitive device, the computer-program product generally including acomputer-readable medium comprising instructions for receiving a firstsequence of touch events, a proximity between any two touch events ofthe first sequence of touch events being greater than a proximitythreshold, receiving a second sequence of touch events, combining thetouch events from the first and the second sequence if a time differencebetween the first and the second sequence of touch events is below atime threshold and a proximity between the first and the second sequenceof touch events is less than the proximity threshold, and determining avalid sequence of touch events if a combined pressure of the first andthe second sequence of touch events is greater than a pressurethreshold.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram conceptually illustrating an example of aconventional touch sensor system.

FIG. 2 is a block diagram conceptually illustrating an example of aconventional acoustic wave touch input system.

FIG. 3 illustrates consequent touch events caused by, for example,moving a finger on a touch sensitive surface.

FIG. 4 illustrates example operations that may be performed by acontroller for comparing touch pressure measurements to a pre-definedthreshold.

FIG. 5 is a block diagram conceptually illustrating an example of touchsensor system capable of combining ambiguous repetitive touch events inaccordance with certain aspects of the present disclosure.

FIG. 6 is a block diagram conceptually illustrating an example of anacoustic wave touch input system in accordance with certain aspects ofthe present disclosure.

FIG. 7 illustrates example operations that may be performed by acontroller for combining data for two ambiguous touch events inaccordance with certain aspects of the present disclosure.

FIG. 8 illustrates example operations that may be performed by acontroller for combining data for two sequences of touch events inaccordance with certain aspects of the present disclosure.

FIG. 9 illustrates an extension of the method of combining data for twotouch events to combining data two sequences of touch events inaccordance with certain aspects of the present disclosure.

The foregoing summary, as well as the following detailed description ofcertain embodiments of the present invention, will be better understoodwhen read in conjunction with the appended drawings. The figuresillustrate diagrams of the functional blocks of various embodiments. Thefunctional blocks are not necessarily indicative of the division betweenhardware circuitry. Thus, for example, one or more of the functionalblocks (e.g., processors or memories) may be implemented in a singlepiece of hardware (e.g., a general purpose signal processor or a blockor random access memory, hard disk, or the like). Similarly, theprograms may be stand alone programs, may be incorporated as subroutinesin an operating system, may be functions in an installed imagingsoftware package, and the like. It should be understood that the variousembodiments are not limited to the arrangements and instrumentalityshown in the drawings.

DETAILED DESCRIPTION

FIG. 1 is a block diagram conceptually illustrating an example of aconventional touch sensor system 100. A touch sensor system generallyincludes one or more touch-screen devices. For example, the touch sensorsystem 100 includes two (identical in this example) touch-screen devices110/110 a communicatively coupled to their respective controllers190/190 a through the corresponding links 140/140 a. In this example,controllers 190 and 190 a as well as links 140 and 140 a are assumed tobe identical, but this is not necessary. Link 140 (and 140 a) representsone or more physical links such as wire-line (e.g., Ethernet cable,twisted pair, etc.), wireless (WiFi, 3G, 4G, Bluetooth, etc.), or anyother type of connection that may carry one or more communicationchannels. As will be illustrated later (see FIG. 2), in one aspect, link140 may correspond to one or more communication channels carrying twooutgoing and two incoming signals. The touch-screen device 110,communicatively coupled to a controller 190 through link 140, mayinclude a transparent touch sensor layer 130 covered by a touch-screen120 made out of transparent material such as glass. In certain aspects,a touch-screen device 110 and controller 190 may be enclosed into asingle device. User interface unit 160 may be coupled with thecontroller 190 via direct link, internet web 150, wireless, or anotherconnection. In certain aspects, a touch sensor system may only have onetouch-screen device. In certain aspects, controller 190 and controllerinterface unit 160 may be built in to the touch-screen device 110.Separate units 110, 110 a, 190, 190 a, and 160 are shown purely forillustrative purposes.

There are a number of touch screen technologies including resistive,surface acoustic wave, capacitive, projected capacitance, infrared,strain gauge, optical imaging, dispersive signal technology, andacoustic pulse recognition. Each technology has its own advantages anddisadvantages. For example, in resistive technology, the touch screenpanel is composed of several layers, the most important of which are twothin, metallic, electrically conductive layers separated by a narrowgap.

Figure FIG. 2 illustrates a touch input system and touch detectionoperation using as an example an acoustic wave touch input system.Acoustic wave technology uses ultrasonic waves that pass over the touchscreen panel. When the panel is touched, a portion of the wave isabsorbed. This change in the ultrasonic waves registers the position ofthe touch event and sends this information to the controller forprocessing. It should be noted that choice of acoustic wave technologydoes not limit present invention to acoustic wave technology only; it isused for illustrative purposes only

FIG. 2 is a block diagram conceptually illustrating an example of aconventional acoustic wave touch input system 200. In FIG. 2 atransparent sensor layer 210 having a surface 209 covers a screen of adisplay system. The wave energy is directed along one or more paths thatform an invisible grid overlaying the surface 209 wherein a touch to thesurface 209 causes wave energy to be attenuated. Four transducers, twosending (201 and 204) and two receiving (202 and 203), are shown in FIG.2. A transducer is a device that converts acoustic wave energy toelectrical signal for measurement and information transfer purposes(i.e., enables pressure sensor). All four transducers 201, 202, 203 and204 may be, for example, piezoelectric transducers and are located inthe corners of the sensor layer 210. It should be noted that the choiceof transducer type includes but is not limited to piezoelectric (as inthe example above), electromagnetic, electrochemical, electromechanical,electro-acoustic, photoelectric, electrostatic, thermoelectric,radio-acoustic.

The touch sensor system 200 may be configured to respond to a touch onthe touch-screen 210 by causing acoustic waves to be transmitted acrossthe touch-screen 209, one or more of which are modulated in the presenceof the touch. The controller 290 in turn may use the modulated signalfrom the waves to identify the location of the touch on the touch-screen209. Basic operation of the touch sensor system 200 in FIG. 2 is asfollows. The controller 290 may begin the scan process to continuouslymonitor the touch screen 210 for touch events. For example, thecontroller 290 may send a signal to the first sending transducer 201 vialine 221. The sending transducer 201 may send acoustic waves in thehorizontal direction. Acoustic waves may be partially reflected byreflector arrays 211 and 213, and then are received by the receivingtransducer 203. The receiving transducer 203 may send a returning signalvia line 223 to the controller 290. The controller 290 may then send asignal to the second sending transducer 204 via line 224. The sendingtransducer 204 may send acoustic waves in the vertical direction.Acoustic waves may be partially reflected by reflector arrays 214 and212, and then may be received by the receiving transducer 202. Thesecond receiving transducer 202 may send a second returning signal vialine 222 to the controller 290. The returning signal may include timingand signal amplitude information representative of touch events, ifpresent. Therefore, controller 290 may constantly send and receivesignals in both the horizontal and vertical directions in order todetect the coordinates of one or more touch events. The time between therepetitive propagation of waves is the sampling rate or time. Ameasurement period may be determined as the time period to send andreceive the first and second sets of signals.

The controller 290 may also use the modulated signal to distinguishbetween valid touches and invalid signals (e.g., signals generated bycontamination on the surface of the screen). If the controller 290identifies a touch as valid, it may transmit the touch's location to ahost computer (not shown) which then may implement a correspondingcomputer function to display the pertinent information, e.g., graphics,on the display device 210. Graphics or other information such as newwidows, menu, text files, etc. may be displayed on the display device210 in response to an operator's command, e.g. touching a particulararea of the touch-screen 209.

The controller 290 may send signals to the sending transducers 201 and204 through communication channels 221 and 204 that may be implementedin one or two links schematically shown in FIG. 1 as part of link 140,respectively, and the transducers 201 and 224 may generate acousticenergy that may be sent across the sensor layer 210 and reflected by thereflector arrays. The controller 290 may accept signals from thereceiving transducers 202 and 203 through communication channels 222 and223 that may be implemented in one or two links schematically shown inFIG. 1 as part of link 140, respectively, and the received signalsinclude timing and signal.

The controller 290 may include coded instructions (stored, for example,in a memory of a microprocessor), which when executed by a machine orprocessor, may perform steps to control and process the relevant (sentand received) signals. The controller 290 may not comprise a computer,but may be implemented in hardware, firmware, software or anycombination thereof. The controller may include coded instructions tocalculate the time the wave takes to travel from the sending transducers201 and 204 to the receiving transducers 202 and 203 via the reflectorarrays 211, 213, 214 and 212. The time taken is typically dependent onthe path length, and therefore the position of an attenuation within thewave may be correlated to the time at which it was received relative tothe time it was launched. Waves may be periodically and/or repetitivelypropagated in both the horizontal and vertical directions of the sensorlayer 210 in order to allow the detection of coordinates of a touchevent location 230.

When user of the system touches sensor layer 210 at any point of thesurface, during a relative time of the touch event, touch location andpressure value are detected by the controller. In many systems, touchevents with low touch pressure are generally ignored. The decision maybe made by the controller and may generally depend on the minimumpressure threshold value stored in the controller as a fixed orconfigurable parameter. In some applications with touch sensitive screeninterface, multiple detected touches may be interpreted as certaincommands. For example, if the controller detects several touches withcoordinates <(X₁, Y₁), (X₂, Y₂), . . . (X_(k), Y_(k))> forming astraight line, estimated touch pressure P at time T, and if time T₁ isless than time T_(k) (threshold), then the system will interpret thetouch sequence as a command to move visual content in the direction of avector pointing from (X₁, Y₁) to (X_(k), Y_(k)).

For example, FIG. 3 illustrates consequent touch events caused by, forexample, moving a finger on a touch sensitive surface. FIG. 3illustrates four touch points (X₁, Y₁, P₁, T₁) 331, (X₂, Y₂, P₂, T₂)332, (X₃, Y₃, P₃, T₃) 333, (X₄, Y₄, P₄, T₄) 334 detected by controllerin relatively short time intervals. Interpretation of such touch commandsequence is typically to move visual objects shown on the screen 310 inthe direction of vector 320 pointing from location (X₁, Y₁) to (X₄, Y₄).A typical example of such application is a map of city streets or anyother geographical application such as cell operator coverage area map,or the like. As mentioned in earlier paragraphs, often, in prior artsystems, just as for a single touch command, each touch event of thesequence is considered valid only if the detected pressure exceedscertain threshold value.

Disadvantage of such conventional touch input systems is that a user mayhave to experiment with the touch pressures before his commands areproperly recognized by the system. If the system is used primarily byone or a few users, this is not be perceived as a big disadvantage.However, when many people are using an application such as map viewerwith touch input system, the experience could easily become frustratingfor those users that do not apply a proper or sufficient pressure.Consider, for example, an application exhibiting wireless serviceoperator coverage map in a cell phone store. Different customers cancome in to the store, enter their desired address and view how coveragechanges as they try to change location of the map around the specifiedaddress. Each customer typically has a unique touch and therefore systemmay easily disregard light touches that do not exceed certain pressurethreshold.

Lowering threshold below certain value may not be desirable either. Inthat case the system could become very sensitive to any touch, and inthe eyes of some customers “unpredictable” because any easy and oftenunintended touch would trigger a command thus resulting inunsatisfactory experience. It is clear, therefore, that a method andapparatus is needed for allowing touch input systems to avoid suchundesired behavior. Present invention solves this problem as will becomeapparent from the description and drawings set force below.

FIG. 4 illustrates example operations 400 that may be performed by acontroller for comparing touch pressure measurements to a pre-definedthreshold. At 402, pressure measurements for a specific time period arereceived by the controller from the touch sensitive surface (or device).At 404, the received measurements are listed as (X₁, Y₁, P₁, T₁), (X₂,Y₂, P₂, T₂) (X_(k), Y_(k), P_(k), T_(k)) according to the estimatedpressure values so that P1<P2< . . . <P_(k). At 406, a variable i is setto 1. At 408, if P_(i) is not less than P_(threshold), operations 400branch out to 410 wherein the variable i is incremented by 1. At 408, ifP_(i) is less than P_(threshold), operations 400 branch out to 412,where all touch detections with indices starting from “i” to “k” areaccepted.

The idea of the invention is to store information captured by thecontroller. In the event when estimated touch pressure is below thethreshold, the captured data may be stored in a temporary buffer locatedon the controller (see FIG. 5 below). If the next touch events occur inthe same proximity as the previous ones, then the system may combineestimated touch pressure of newly received data with the stored data andcompare with the pressure threshold value again. If the combined valueexceeds the threshold value, touch event would be deemed as valid andthe corresponding command may be sent to the application, and the storeddata may be discarded. If not, the combined data may be stored again,and the process may be repeated up to a predetermined or specifiednumber of times.

FIG. 5 is a block diagram conceptually illustrating an example of touchsensor system 500 capable of combining ambiguous repetitive touch eventsin accordance with certain aspects of the present disclosure. An“ambiguous” touch event may be defined as a touch event that may not beclearly identified as a touch command. An example in the context of thisdiscussion would be a touch event with measured touch pressure beingbelow a predefined threshold value.

The touch sensor system 500 generally comprises one or more touch-screendevices. A touch sensor system with multiple touch-screen devices isillustrated in FIG. 5 with two (identical by example only) touch-screendevices 550 and 550 a. The touch-screen device 550, communicativelycoupled to a controller 590 through link 540, comprises a transparenttouch sensor layer 530 covered by a touch-screen 520 made out oftransparent material such as glass. The controller 590 further comprisesat least one buffer 591 and at least one microprocessor 592. In presentinvention the buffer 591 may temporarily store detected touch coordinateinformation, estimated touch pressure (pressure indicator), timestamp oftouch event and/or other signals representative of detected touchevents. The microprocessor 592 may combine signals of repetitivedetected touches as discussed below, wherein at least one set of signalsis stored in the buffer 591. It should be noted that the buffer 591 andthe microprocessor 592 may be combined with the existing buffer(s) andmicroprocessor(s) of controllers used in prior art systems.

A touch-screen system comprising the touch-screen device 550 andcontroller 590 may be used in conjunction with a controller userinterface unit 560 coupled with the controller 590 via direct link,internet web 550, wireless, or another connection. In an aspect, a touchsensor system may only have one touch-screen device. In an aspect,controller 590 and controller interface units may be built in to thetouch-screen device 550. Separate units 550, 550 a, 590, 590 a, and 560are shown purely for illustrative purposes.

The microprocessor 590 may output the combined information of detectedtouch events to another device such as a central or host computer 560via lead 545. It should be understood that the coordinate informationpassed through the lead 545 is representative only. In addition,information may be output in many forms and formats by the computer 560,such as text or graphics on the display device 550, a different displaydevice or monitor, a light, a bell, an initiation or termination of anaction, and the like. Therefore, the information passed through the lead545 may change based on the purpose of the touch sensor system 500.Optionally, the controller 590 may be located within a monitor or thedisplay device 550, in a separate unit as illustrated, or within thecomputer 560.

FIG. 6 is a block diagram conceptually illustrating an example of anacoustic wave touch input system 600 in accordance with certain aspectsof the present disclosure. Although surface acoustic waves (SAW) areillustrated, it may be appreciated that other sensing technologies mayalso be used, including, but not limited to, acoustic wave, resistive,capacitive, projected capacitance, infrared, strain gauge, opticalimaging, dispersive signal technology, and acoustic pulse recognition.

Method of sending and receiving signals by the controller 690 in system600 is similar to that of the system 200 illustrated in FIG. 2 anddescribed earlier. The main difference is in treatment of touch eventswith touch pressure below pre-defined threshold value. In thisembodiment the method is implemented in the controller 690 and isdescribed below. For the purpose of illustration in this embodiment inFIG. 6 a single touch command input is assumed to be repeated twice. Inboth cases, touch pressure measurement is below the pre-definedthreshold value. First signals received by the controller 690 correspondto the touch event 630 and include at least coordinates (X₀, Y₀), touchpressure P₀ and time T₀. Due to the touch pressure measurement beingbelow the pre-defined threshold value P_(threshold), S₀=(X₀, Y₀, P₀, T₀)is stored in the buffer 691. Once the second touch event 631 signals arereceived by the controller 690 and S₁=(X₁, Y₁, P₁, T₁) are available, P₁is compared with the pre-defined threshold value P_(threshold), and ifP1 is less than P_(threshold) then data S₀ and S₁ for both touch eventsare processed by the microprocessor 692 for possible combining into asignal touch event.

FIG. 7 illustrates example operations 700 that may be performed by acontroller for combining data for two ambiguous touch events inaccordance with certain aspects of the present disclosure. Operations700 relate to an example of a method of combining data S₀ and S₁ of twoambiguous touch events. Operations 700 begin at 702 where the twoambiguous touch events S₀ and S₁ are received. Note that in this exampleboth touch events may not be clearly identified as touch commands(detected touch pressure was below minimum allowed value). Instead ofdiscarding the data, the operations 700 try to combine it in a way thatwould allow the system to detect multiple attempts of a user to executea single touch command.

As is shown is FIG. 7, at 704, the system first checks if both detectedtouch events occurred within certain time interval. If the difference oftimestamps of the two events exceed a pre-defined T_(max) value, thentwo events are assumed not related, i.e. they do not representrepetitive attempts to execute a single touch command. Therefore, at706, the system discards the earlier touch event data S₀, and saves thelater touch event data in place of S₀ in the same buffer space.

At 704, If the timestamp difference is sufficiently small, then thesystem checks how close were touch events on the surface. In presentembodiment closeness of touch locations is calculated at 708 as a simpleEuclidian norm of points in two dimensional space:R=SQRT((X₀−X₁)²+(Y₀−Y₁)²). If two locations are not sufficiently close,i.e. if R>Rmax for some pre-defined maximum distance Rmax, data sets cannot be combined. In that case, at 712, the system stores both data setsin the buffer 691 for possible combining with future ambiguous touchevent data. If, on the other hand R is sufficiently small, then datasets S0 and S1 are combined at 714 to form a single touch event signalsS=(X, Y, P, T), where X and Y are mean values for (X, Y) coordinates ofthe two touch events, P is the sum of measured pressure values of thetwo touch events, and T is the timestamp of the newest touch event. Forexample, in FIG. 6 the two touch events 630 and 631 are shown by twooverlapping circles illustrating that they are sufficiently close.

Once S is calculated by the processor 692, P is compared with thepre-defined threshold value at 716 to determine if the two combined datasets represent a repetitive attempt to execute a single touch command.If P is less than the pre-defined threshold, then, at 718, the newlycombined data S is stored by the system in the buffer 691 for possiblefuture combining with a new ambiguous touch event data. On the otherhand, if P is greater than the threshold pressure, S is determined asvalid/unambiguous single touch command at 720 and is passed to theapplication for further action.

It should be noted that operations 700 are not limited to combing onlytwo touch event data sets. The above presented example of combining twotouch event data can be easily extended to combining three and moretouch events that occurred within specified time frame. Generalizationof the above described method is immediate and should be understood byanyone skilled in the art.

FIG. 8 illustrates example operations that may be performed by acontroller for combining data for two sequences of touch events inaccordance with certain aspects of the present disclosure. At 802, afirst sequence of touch events is received, a proximity between any twotouch events of the first sequence of touch events being greater than aproximity threshold. At 804, a second sequence of touch events isreceived. At 806, the touch events from the first and the secondsequence are combined if a time difference between the first and thesecond sequence of touch events is below a time threshold and aproximity between the first and the second sequence of touch events isless than the proximity threshold. At 808, a valid sequence of touchevents is determined if a combined pressure of the first and the secondsequence of touch events is greater than a pressure threshold.

In certain aspects, the time difference between the first and the secondsequence of touch events includes a time difference between a lastreceived touch event in the first sequence and a first received touchevent in the second sequence.

In certain aspects, the proximity between the first and the secondsequence of touch events includes proximities between correspondingtouch events in the first and the second sequence of touch events.

In certain aspects, the combined pressure of the first and the secondsequence of touch events comprises a sum of pressures of correspondingtouch events in the first and the second sequence of touch events.

In certain aspects, the first sequence of touch events is stored in abuffer.

In certain aspects, each touch event in the first and the secondsequence of touch events comprises a position indicator, a pressureindicator and a time stamp.

In certain aspects, the pressure indicator of a defined number of touchevents in the first and the second sequence of touch events is below athreshold.

FIG. 9 illustrates an extension of the method of combining data for twotouch events to combining data two sequences of touch events inaccordance with certain aspects of the present disclosure. FIG. 9illustrates a method for combining data for repetitive touch eventscorresponding to user moving his finger on the surface of a touchsensitive device such as a touch screen. The system detects a firstsequence of touch events 931, 932, 933, 934 along the vector 930.Assuming that the pressure of a defined number of touch events in thefirst sequence is less than a pressure threshold these touch events maybe deemed ambiguous. Assuming that the proximity of the (X, Y)coordinates of these touch events is greater than a threshold proximity,the touch events may not be combined, and assuming that the touch eventsform a straight line, the system stores all four data sets S_(k)=(X_(k),Y_(k), P_(k), T_(k)) with k=931, 932, 933, 934 in the buffer forpossible combining with future data. In an aspect, the pressure of adefined number of touch events in the first sequence of touch events isbelow a pressure threshold.

A similar second sequence of touch events 941, 942, 943, 944 is receivedand the system analyses the second sequence. Assuming that the apredefined number of touch events in the second sequence are below thepressure threshold, the system concludes that the second sequence isalso ambiguous and the touch events in the second sequence may not becombined due to the location/proximity of (X, Y) coordinates of detectedtouch events as with the first sequence discussed above. Assuming thatthese touch events/data points also form a straight line, the system maytry to combine these data sets S_(r)=(X_(r), Y_(r), P_(r), T_(r)) withr=941, 942, 943, 944 with the stored data sets. In an aspect, if T₉₃₄(the last detected touch of the first series) is sufficiently close toT₉₄₁ (the first detected touch of the second series), then the systemwill try to combine set S_(k) and S_(r).

Combining set of data Sr and Sk is done as described above for singletouch command and for the purpose of illustrating of this embodiment itis assumed that only three valid combining combinations are possible.These possibilities are illustrated as overlapping circles correspondingto touch events 932 and 942, 933 and 943, 934 and 944 shown in FIG. 9.Anyone will appreciate that extension of this example to combining morethan two such sets is immediate.

Those of skill in the art would understand that information and signalsmay be represented using any of a variety of different technologies andtechniques. For example, data, instructions, commands, information,signals, bits, symbols, and chips that may be referenced throughout theabove description may be represented by voltages, currents,electromagnetic waves, magnetic fields or particles, optical fields orparticles, or any combination thereof.

Those of skill would further appreciate that the various illustrativelogical blocks, modules, circuits, and algorithm steps described inconnection with the disclosure herein may be implemented as electronichardware, computer software, or combinations of both. To clearlyillustrate this interchangeability of hardware and software, variousillustrative components, blocks, modules, circuits, and steps have beendescribed above generally in terms of their functionality. Whether suchfunctionality is implemented as hardware or software depends upon theparticular application and design constraints imposed on the overallsystem. Skilled artisans may implement the described functionality invarying ways for each particular application, but such implementationdecisions should not be interpreted as causing a departure from thescope of the present disclosure.

The various illustrative logical blocks, modules, and circuits describedin connection with the disclosure herein may be implemented or performedwith a general-purpose processor, a digital signal processor (DSP), anapplication specific integrated circuit (ASIC), a field programmablegate array (FPGA) or other programmable logic device, discrete gate ortransistor logic, discrete hardware components, or any combinationthereof designed to perform the functions described herein. Ageneral-purpose processor may be a microprocessor, but in thealternative, the processor may be any conventional processor,controller, microcontroller, or state machine. A processor may also beimplemented as a combination of computing devices, e.g., a combinationof a DSP and a microprocessor, a plurality of microprocessors, one ormore microprocessors in conjunction with a DSP core, or any other suchconfiguration.

The steps of a method or algorithm described in connection with thedisclosure herein may be embodied directly in hardware, in a softwaremodule executed by a processor, or in a combination of the two. Asoftware module may reside in RAM memory, flash memory, ROM memory,EPROM memory, EEPROM memory, registers, hard disk, a removable disk, aCD-ROM, or any other form of storage medium known in the art. Anexemplary storage medium is coupled to the processor such that theprocessor can read information from, and write information to, thestorage medium. In the alternative, the storage medium may be integralto the processor. The processor and the storage medium may reside in anASIC. The ASIC may reside in a user terminal. In the alternative, theprocessor and the storage medium may reside as discrete components in auser terminal.

In one or more exemplary designs, the functions described may beimplemented in hardware, software, firmware, or any combination thereof.If implemented in software, the functions may be stored on ortransmitted over as one or more instructions or code on acomputer-readable medium. Computer-readable media includes both computerstorage media and communication media including any medium thatfacilitates transfer of a computer program from one place to another. Astorage media may be any available media that can be accessed by ageneral purpose or special purpose computer. By way of example, and notlimitation, such computer-readable media can comprise RAM, ROM, EEPROM,CD-ROM or other optical disk storage, magnetic disk storage or othermagnetic storage devices, or any other medium that can be used to carryor store desired program code means in the form of instructions or datastructures and that can be accessed by a general-purpose orspecial-purpose computer, or a general-purpose or special-purposeprocessor. Also, any connection is properly termed a computer-readablemedium. For example, if the software is transmitted from a website,server, or other remote source using a coaxial cable, fiber optic cable,twisted pair, digital subscriber line (DSL), or wireless technologiessuch as infrared, radio, and microwave, then the coaxial cable, fiberoptic cable, twisted pair, DSL, or wireless technologies such asinfrared, radio, and microwave are included in the definition of medium.Disk and disc, as used herein, includes compact disc (CD), laser disc,optical disc, digital versatile disc (DVD), floppy disk and blu-ray discwhere disks usually reproduce data magnetically, while discs reproducedata optically with lasers. Combinations of the above should also beincluded within the scope of computer-readable media.

The previous description of the disclosure is provided to enable anyperson skilled in the art to make or use the disclosure. Variousmodifications to the disclosure will be readily apparent to thoseskilled in the art, and the generic principles defined herein may beapplied to other variations without departing from the spirit or scopeof the disclosure. Thus, the disclosure is not intended to be limited tothe examples and designs described herein, but is to be accorded thewidest scope consistent with the principles and novel features disclosedherein.

What is claimed is:
 1. A method, comprising: receiving a first sequenceof touch events; receiving a second sequence of touch events; combiningthe touch events from the first and the second sequence when a proximitybetween the first and the second sequence of touch events is less than aproximity between any two touch events of the first sequence of touchevents; and determining a valid sequence of touch events when a combinedpressure of the first and the second sequence of touch events is greaterthan a pressure threshold.
 2. The method of claim 1, further comprisingcombining the touch events from the first and the second sequence when atime difference between the first and the second sequence of touchevents is below a time threshold, wherein the time difference betweenthe first and the second sequence of touch events comprises a timedifference between a last received touch event in the first sequence anda first received touch event in the second sequence.
 3. The method ofclaim 1, wherein the proximity between the first and the second sequenceof touch events comprises proximities between corresponding touch eventsin the first and the second sequence of touch events.
 4. The method ofclaim 1, wherein the combined pressure of the first and the secondsequence of touch events comprises a sum of pressures of correspondingtouch events in the first and the second sequence of touch events. 5.The method of claim 1, further comprising storing the first sequence oftouch events in a buffer.
 6. The method of claim 1, wherein each touchevent in the first and the second sequence of touch events comprises aposition indicator, a pressure indicator and a time stamp.
 7. The methodof claim 6, wherein the pressure indicator of a defined number of touchevents in the first and the second sequence of touch events is below athreshold.
 8. An apparatus, comprising: at least one processorconfigured to: receive a first sequence of touch events, receive asecond sequence of touch events, combine the touch events from the firstand the second sequence when a proximity between the first and thesecond sequence of touch events is less than a proximity between any twotouch events of the first sequence of touch events, and determine avalid sequence of touch events when a combined pressure of the first andthe second sequence of touch events is greater than a pressurethreshold; and a memory coupled to the at least one processor.
 9. Theapparatus of claim 8, wherein the at least one processor is furtherconfigured to combine the touch events from the first and the secondsequence when a time difference between the first and the secondsequence of touch events is below a time threshold, wherein the timedifference between the first and the second sequence of touch eventscomprises a time difference between a last received touch event in thefirst sequence and a first received touch event in the second sequence.10. The apparatus of claim 8, wherein the proximity between the firstand the second sequence of touch events comprises proximities betweencorresponding touch events in the first and the second sequence of touchevents.
 11. The apparatus of claim 8, wherein the combined pressure ofthe first and the second sequence of touch events comprises a sum ofpressures of corresponding touch events in the first and the secondsequence of touch events.
 12. The apparatus of claim 8, wherein the atleast one processor is further configured to store the first sequence oftouch events in a buffer.
 13. The apparatus of claim 8, wherein eachtouch event in the first and the second sequence of touch eventscomprises a position indicator, a pressure indicator and a time stamp.14. The apparatus of claim 13, wherein the pressure indicator of adefined number of touch events in the first and the second sequence oftouch events is below a threshold.
 15. A computer program embodied on anon-transitory computer-readable medium, the computer program configuredto cause at least one processor to: receive a first sequence of touchevents, receive a second sequence of touch events, combine the touchevents from the first and the second sequence when a proximity betweenthe first and the second sequence of touch events is less than aproximity between any two touch events of the first sequence of touchevents, and determine a valid sequence of touch events when a combinedpressure of the first and the second sequence of touch events is greaterthan a pressure threshold.
 16. The computer program of claim 15, thecomputer program further configured to cause the at least one processorto combine the touch events from the first and the second sequence whena time difference between the first and the second sequence of touchevents is below a time threshold, wherein the time difference betweenthe first and the second sequence of touch events comprises a timedifference between a last received touch event in the first sequence anda first received touch event in the second sequence.
 17. The computerprogram of claim 15, wherein the proximity between the first and thesecond sequence of touch events comprises proximities betweencorresponding touch events in the first and the second sequence of touchevents.
 18. The computer program of claim 15, wherein the combinedpressure of the first and the second sequence of touch events comprisesa sum of pressures of corresponding touch events in the first and thesecond sequence of touch events.
 19. The computer program of claim 15,the computer program further configured to cause the at least oneprocessor to store the first sequence of touch events in a buffer. 20.The computer program of claim 15, wherein each touch event in the firstand the second sequence of touch events comprises a position indicator,a pressure indicator and a time stamp, wherein the pressure indicator ofa defined number of touch events in the first and the second sequence oftouch events is below a threshold.